---
title: Freshbooks
sidebarTitle: Freshbooks
---

import Overview from "/snippets/overview.mdx"
import PreBuiltTooling from "/snippets/generated/freshbooks/PreBuiltTooling.mdx"
import PreBuiltUseCases from "/snippets/generated/freshbooks/PreBuiltUseCases.mdx"

<Overview />
<PreBuiltTooling />
<PreBuiltUseCases />

## Access requirements
| Pre-Requisites | Status | Comment|
| - | - | - |
| Paid dev account | ✅ Not required | Free FreshBooks account is sufficient for development. |
| Paid test account | ✅ Not required | Free FreshBooks account is sufficient for testing. |
| Partnership | ✅ Not required | |
| App review | ✅ Not required | No review process for OAuth apps. |
| Security audit | ✅ Not required | |


## Setup guide

<Steps>
  <Step title="Create a FreshBooks account">
    1. If you don't already have a FreshBooks account, go to [FreshBooks' signup page](https://www.freshbooks.com/signup) and create one.
    2. Sign in to your FreshBooks account.
  </Step>
  
  <Step title="Access the developer portal">
    1. Go to the [FreshBooks developer page](https://www.freshbooks.com/api/start).
    2. Click on the "sign up" link to access your FreshBooks account.
    3. Navigate to the developer portal by clicking on "the developer page" link.
  </Step>
  
  <Step title="Create a new OAuth application">
    1. In the developer portal, click on **Create Application**.
    2. Fill in the required information for your application:
       - **Application Name**: Enter a name for your application.
       - **Application Description**: Provide a brief description of what your application does.
       - **Company Name**: Enter your company name.
       - **Application Website**: Enter the URL of your application's website.
  </Step>
  
  <Step title="Configure OAuth settings">
    1. In the OAuth settings section, add the following redirect URI:
       - `https://api.nango.dev/oauth/callback`
    
    2. Select the appropriate scopes for your application based on your needs. Common scopes include:
       - `user:profile:read` - Read user profile information
       - `user:clients:read` - Read client information
       - `user:invoices:read` - Read invoice information
       - `user:invoices:write` - Create and update invoices
       - `user:estimates:read` - Read estimate information
       - `user:estimates:write` - Create and update estimates
       - `user:expenses:read` - Read expense information
       - `user:expenses:write` - Create and update expenses
    
    3. Save your application settings.
  </Step>
  
  <Step title="Obtain your OAuth credentials">
    After creating your application, you'll receive:
    
    - **Client ID**: A unique identifier for your application
    - **Client Secret**: A secret key for your application
    
    Make sure to store these securely, especially the Client Secret, as you'll need them when configuring your integration in Nango.
  </Step>
  
  <Step title="Configure your integration in Nango">
    When setting up your FreshBooks integration in Nango:
    
    - Use your **Client ID** and **Client Secret** from the previous step
  </Step>
  
  
  <Step title="Next">
    Follow the [_Quickstart_](/getting-started/quickstart).
  </Step>
</Steps>

<Tip>Need help getting started? Get help in the [community](https://nango.dev/slack).</Tip>


## Useful links

-   [FreshBooks API Documentation](https://www.freshbooks.com/api/start)
-   [FreshBooks API Reference](https://www.freshbooks.com/api/start)
-   [Authentication Documentation](https://www.freshbooks.com/api/authentication)
-   [OAuth 2.0 Protocol](https://www.freshbooks.com/api/authentication#oauth-2.0-protocol)
-   [Basic Flow](https://www.freshbooks.com/api/authentication#basic-flow)
-   [API Endpoints](https://www.freshbooks.com/api/start)
-   [API Rate Limits](https://www.freshbooks.com/api/start)

## Common Scopes

| Scope | Description |
| ----- | ----------- |
| `user:profile:read` | Read user profile information |
| `user:clients:read` | Read client information |
| `user:clients:write` | Create and update clients |
| `user:invoices:read` | Read invoice information |
| `user:invoices:write` | Create and update invoices |
| `user:estimates:read` | Read estimate information |
| `user:estimates:write` | Create and update estimates |
| `user:expenses:read` | Read expense information |
| `user:expenses:write` | Create and update expenses |
| `user:payments:read` | Read payment information |
| `user:payments:write` | Create and update payments |
| `user:projects:read` | Read project information |
| `user:projects:write` | Create and update projects |
| `user:time_entries:read` | Read time entry information |
| `user:time_entries:write` | Create and update time entries |

## API gotchas

- FreshBooks API endpoints are account-specific. The account ID is required for most API calls and is included in the URL path.

<Note>Contribute API gotchas by [editing this page](https://github.com/nangohq/nango/tree/master/docs/integrations/all/freshbooks.mdx)</Note>
